gdkevents: Use the correct display to copy event data
authorJasper St. Pierre <jstpierre@mecheye.net>
Tue, 28 Oct 2014 05:29:29 +0000 (22:29 -0700)
committerJasper St. Pierre <jstpierre@mecheye.net>
Tue, 28 Oct 2014 05:29:41 +0000 (22:29 -0700)
gdk/gdkevents.c

index 0cfde38cd4be3d81b03802f805be6be1b38f8060..89cc5a28d8215582d8361937e611c2c9745bf27e 100644 (file)
@@ -461,6 +461,15 @@ gdk_event_peek (void)
   return event;
 }
 
+static GdkDisplay *
+event_get_display (const GdkEvent *event)
+{
+  if (event->any.window)
+    return gdk_window_get_display (event->any.window);
+  else
+    return gdk_display_get_default ();
+}
+
 /**
  * gdk_event_put:
  * @event: a #GdkEvent.
@@ -476,10 +485,7 @@ gdk_event_put (const GdkEvent *event)
   
   g_return_if_fail (event != NULL);
 
-  if (event->any.window)
-    display = gdk_window_get_display (event->any.window);
-  else
-    display = gdk_display_get_default ();
+  display = event_get_display (event);
 
   gdk_display_put_event (display, event);
 }
@@ -713,7 +719,7 @@ gdk_event_copy (const GdkEvent *event)
     }
 
   if (gdk_event_is_allocated (event))
-    _gdk_display_event_data_copy (gdk_display_get_default (), event, new_event);
+    _gdk_display_event_data_copy (event_get_display (event), event, new_event);
 
   return new_event;
 }
@@ -804,7 +810,7 @@ gdk_event_free (GdkEvent *event)
       break;
     }
 
-  display = gdk_display_get_default ();
+  display = event_get_display (event);
   if (display)
     _gdk_display_event_data_free (display, event);